Bodies
Each body is propagated on a two-body Kepler orbit. Planets use J2000 mean elements; every small body — asteroid and comet alike — uses a JPL Horizons osculating set anchored at its own mission-encounter epoch, so each one sits on its true position on the day its spacecraft arrives. A comet's non-gravitational jetting makes a single element set useless a revolution later, so the two bodies visited twice (9P/Tempel 1 by Deep Impact in 2005 and Stardust-NExT in 2011; Didymos by DART in 2022 and Hera in 2026) carry one set per visit. Away from its anchor epoch a minor body’s along-track phase drifts slowly (two-body vs. full perturbations); across all 87 encounter positions on this page the drift stays under 0.007 au.
Spacecraft trajectories
A mission is an ordered chain of real encounters — launch, each gravity assist, each rendezvous — at their actual dates. For every leg we solve Lambert's problem (multi-revolution Izzo algorithm) between the two ephemeris-computed encounter positions for the exact time of flight, then propagate the resulting conic with a universal-variable f&g integrator. Among all closing solutions we keep the lowest-departure-energy one — the transfer a real mission would fly. Every ballistic arc therefore passes through the ephemeris position of each body at each encounter date — and those ephemeris positions sit within 0.007 au of JPL Horizons for all 87 encounters (asteroids to < 10⁻⁴ au). This is a two-impulse reconstruction: it captures the real heliocentric geometry of every cruise leg, gravity assist, and rendezvous, but folds each leg's deep-space trajectory-correction maneuvers into its endpoints.
Resonant returns & low-thrust cruises
Of the 66 legs here, 53 are solved ballistically. Seven are same-body resonant returns (e.g. a one-year Earth–Earth leg), numerically degenerate for a two-impulse solve and reconstructed as the correct-period resonant cruise ellipse (a ≈ 1 au, small eccentricity). The remaining six are continuous solar-electric cruises — parts of Deep Space 1, Dawn, Psyche and Tianwen-2 — where no ballistic arc departs at a plausible cost (the cheapest two-impulse transfer to 311P would leave Earth 27 km/s fast and swing past 7 au); those are drawn as bounded heliocentric spirals between the two orbit radii, pinned to both encounter endpoints, and flagged low-thrust in the readout. Every leg's tooltip carries its own residual and departure Δv.
Re-verified in Node against JPL Horizons (2026-08): the Curtis Lambert benchmark to the printed digit; a raw Lambert residual under 5 × 10⁻¹⁴ au on all 53 ballistic legs; every one of the 87 encounter positions within 0.007 au of Horizons; and reconstructed encounter speeds against the published record — Giotto–Halley 68.3 (real 68.4) km/s, Vega 1 79.5 (79.2), Vega 2 77.0 (76.8), Galileo–Ida 12.4, Lucy–Donaldjohanson 13.5, DART impact 6.2 (6.1) km/s — with Apophis grazing Earth on 2029-04-13 and Didymos 0.077 au from Earth at DART impact, as observed.
Live feeds
Close approaches and the Sentry risk list are fetched live from ssd-api.jpl.nasa.gov (CAD and Sentry APIs). Nothing is cached or fabricated; a failed fetch is shown as an error state.